﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SistemaComprasVentaYICHAN
{
    public partial class AgregarNuevaCotizacion : Principal
    {
        private int n_linea=1;
        private double SubTotal = 0;
        private double Impuesto = 0;
        private double Total = 0;
        public AgregarNuevaCotizacion()
        {
            InitializeComponent();
        }

        private void AgregarNuevaCotizacion_Load(object sender, EventArgs e)
        {
            //ACA SE LLAMA AL METODO QUE LLENA LA VENTANA DE INICIO
            llenaVentana();
        }

        private void llenaVentana()
        {
            int codigo = GestorCotizacion.getInstancia().SiguienteCotizacion();
            textBox1.Text = Convert.ToString(codigo);
            textBox1.Enabled = false;
            comboBox1.SelectedItem = "SELECCIONADA";
            textBox4.Text = "1";
            textBox5.Text = "Hector Gomez Montoya";
            textBox4.Enabled = false;
            textBox5.Enabled = false;
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        

        private void button8_Click(object sender, EventArgs e)
        {
            if (textBox3.Text == "") return;
            int codigo = System.Convert.ToInt32(textBox3.Text);
            Cliente c=GestorCliente.getInstancia().buscarCliente(codigo);
            if (c == null)
            {
                textBox2.Text = "";
                textBox3.Text = "";
                MessageBox.Show("El codigo buscado no se encuentra en la BD, Por favor ingrese un nuevo dato", "Información");
            }
            else
            {
                textBox3.Text =  System.Convert.ToString(c.Codigo);
                textBox2.Text = c.getNombreContacto;
            }
        }
        private void button9_Click(object sender, EventArgs e)
        {
            
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            guardarCotizacion();
        }

        private void guardarCotizacion()
        {
            
            
            //GestorCotizacion.getInstancia().SumaCotizacion();
            DateTime Fecha = System.Convert.ToDateTime(dateTimePicker1.Text);
            String Estado= System.Convert.ToString(comboBox1.Text);
            String Cliente = System.Convert.ToString(textBox2.Text);
            String Vendedor = System.Convert.ToString(textBox5.Text);
            int NCotizacion = System.Convert.ToInt32(textBox1.Text);
            Double SubTotal = System.Convert.ToDouble(textBox8.Text);
            Double Impuesto = System.Convert.ToDouble(textBox7.Text);
            Double Total = System.Convert.ToDouble(textBox6.Text);
            List<DetalleCotizacion> Detalle=new List<DetalleCotizacion>();
            
            Cotizacion cotizacion = new Cotizacion(NCotizacion,Fecha,Detalle,Estado,Cliente,Vendedor,SubTotal,Impuesto,Total);
            
            GestorCotizacion.getInstancia().AgregaCotizacion(cotizacion);
            //this.Refresh();
            
            
        }

        private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            
            if (dataGridView1.CurrentCell.ColumnIndex == 0)
            {
                
                dataGridView1.Rows[dataGridView1.Rows.Count-1].Cells["NItem"].Value = n_linea+"";
                this.n_linea++;
                
            }
            if (dataGridView1.CurrentCell.ColumnIndex == 5)
            {
                int cantidad = System.Convert.ToInt32(dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells["CantidadItem"].Value);
                double precio = System.Convert.ToDouble(dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells["PrecioUnitario"].Value);
                double total = cantidad * precio;
                dataGridView1.Rows[dataGridView1.Rows.Count-2].Cells["Costo"].Value=total+"";
                SubTotal = SubTotal + total;
                Impuesto = SubTotal * 18 / 100;
                Total = Impuesto + SubTotal;
                this.textBox8.Text = System.Convert.ToString(SubTotal);
                this.textBox7.Text = System.Convert.ToString(Impuesto);
                this.textBox6.Text = System.Convert.ToString(Total);

            }
            
        }

        private void button5_Click(object sender, EventArgs e)
        {
            limpia_formulario();
        }

        private void limpia_formulario()
        {
            dataGridView1.Rows.Clear();
            this.textBox8.Text = "";
            this.textBox7.Text = "";
            this.textBox6.Text = "";
            this.textBox3.Text = "";
            this.textBox2.Text = "";
        }

        private void button12_Click(object sender, EventArgs e)
        {
            int codigo = GestorCotizacion.getInstancia().SiguienteCotizacion();
            textBox1.Text = Convert.ToString(codigo);
        }

        private void button10_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "") {
                MessageBox.Show("Especifique una cotizacion");
                return;
            }
            int indice = System.Convert.ToInt32(textBox1.Text);
            GenerarOV v = new GenerarOV(indice);
            v.ShowDialog();
        }

        private void button11_Click(object sender, EventArgs e)
        {
            CatalogoProductosDLG c = new CatalogoProductosDLG();
            c.ShowDialog();

            //dataGridView1.Rows.Clear();

            for (int i = 0; i < c.lista.Count; i++)
            {
                string[] fila = {"", c.lista[i].CodigoYiChang1.ToString(), c.lista[i].Nombre1, c.lista[i].PrecioBaseCompra1.ToString() };
                dataGridView1.Rows.Add(fila);
            }

        }
        
    }
}
